Skip to content


This page gives hints on how to compute the electronic self-energy (due to electron-electron interaction) with the ABINIT package.


In principle, the exact self-energy can be obtained by solving self-consistently the set of coupled integro-differential equations proposed by Hedin [Hedin1965]. The fundamental building blocks of Hedin’s equations are, besides \Sigma(1,2), the Green’s function of the interacting many-body system, G(1,2), the Green’s function of an appropriate non-interacting system, \Go(1,2), and the irreducible polarizability, \tchi(1,2), which, through the inverse dielectric matrix \ee^{-1}(1,2), re-normalizes the static Coulomb potential, resulting in the dynamical screened interaction W(1,2). Finally, the vertex function \Gamma(1,2,3) describes the interactions between virtual holes and electrons.

A typical self-energy calculation combines a quasi-particle band structure with a screened interaction and possibly a vertex correction to the QP corrections (optdriver=4).

In the frequency domain, the GW self-energy \Sigma(\omega) can be evaluated in ABINIT with two different, more effective, techniques:

  • integration with a plasmon-pole model (PPM)
  • integration with contour deformation (CD).

In the former case, the frequency dependence of \ee^{-1}(\omega), is modeled with a simple analytic form, and the frequency convolution is carried out analytically. In the latter approach, the integral is evaluated numerically extending the functions in the complex plane in order have a smoother integrand.

Four different plasmon pole models (PPMs) are available in ABINIT. The choice of the particular PPM to be used is controlled by the variable ppmodel. The first two options (ppmodel = 1, 2) refer to approximations employed in the pioneering implementations of the GW formalism: the plasmon-pole models of Godby-Needs [Godby1989] (GN) and Hybertsen and Louie [Hybertsen1986] (HL).

The contour deformation technique is activated by setting the input variable gwcalctyp to 2. The integration along the imaginary axis requires the calculation of \ee^{-1}(\omega), for purely imaginary frequencies. The frequency mesh for the quadrature is governed by the input variable nfreqim, and can be very coarse since the integrands is very smooth in this region.

The evaluation of the residue of the poles requires the calculation of \ee^{-1}(\omega) on a fine mesh along the real axis. This regular mesh, sampling the interval [0, +∞], is defined by the two input variables nfreqre and freqremax.

The CD approach requires many evaluations of \ee^{-1}(\omega) and can therefore be computationally highly demanding. On the other hand, it is the preferred approach for calculating the QP correction of low-lying states. Moreover, it is the only technique available in ABINIT to compute the imaginary part of \Sigma(\omega) and the spectral function A(\omega).

It is possible to disable the full computation, and actually do an Hartree-Fock, screened exchange, COHSEX or hybrid functional calculation. The calculation is done in a precomputed basis set, that can be Kohn-Sham (e.g. PBE) or generalized Kohn-Sham (e.g. HSE06).

As vertex corrections, the bootstrap kernel and others can be included in the self-consistent W. The Faleev method ([Faleev2004]), is implemented.

Convergence over the number of unoccupied band is much improved with respect to usual implementations of GW, thanks to the “extrapolar” method.

The frequency meshes, used e.g. for integration along the real and imaginary axes are described in topic_FrequencyMeshMBPT.



  • bdgw BanDs for GW calculation
  • ecutsigx Energy CUT-off for SIGma eXchange
  • freqspmax FREQuencies for the SPectral function MAXimum
  • freqspmin FREQuencies for the SPectral function MINimum
  • gw_icutcoul GW CUT-off for COULomb interaction
  • gwcalctyp GW CALCulation TYPe
  • gwpara GW PARAllelization level
  • kptgw K-PoinTs for GW calculations
  • nfreqsp Number of FREQuencies for the SPectral function
  • nkptgw Number of K-PoinTs for GW corrections
  • nomegasi Number of OMEGA(S) along the Imaginary axis
  • omegasimax OMEGA to evaluate Sigma along the Imaginary axis D: MAXimal value
  • omegasrdmax OMEGA to evaluate the Sigma Real axis Derivative: MAXimal value
  • ppmfrq Plasmon Pole Model FReQuency
  • ppmodel Plasmon Pole MODEL
  • rcut Radius of the CUT-off for coulomb interaction
  • vcutgeo V (potential) CUT-off GEOmetry


  • getqps GET QuasiParticle Structure
  • getscr GET SCReening (the inverse dielectric matrix) from…
  • getsuscep GET SUSCEPtibility (the irreducible polarizability) from…
  • gw_qprange GW QuasiParticle RANGE policy
  • gwaclowrank GW Analytic Continuation LOW RANK approximation
  • gwcomp GW COMPleteness
  • gwencomp GW ENergy for COMPleteness
  • irdqps Integer that governs the ReaDing of QuasiParticle Structure
  • irdscr Integer that governs the ReaDing of the SCReening
  • irdsuscep Integer that governs the ReaDing of the SUSCEPtibility
  • mbpt_sciss Many Body Perturbation Theory SCISSor operator
  • nbandkss Number of BANDs in the KSS file
  • nomegasrd Number of OMEGA to evaluate the Sigma Real axis Derivative
  • sigma_ngkpt SIGMA: Number of Grid points for K PoinTs generation
  • sigma_nshiftk SIGMA: Number of SHIFTs for K point grids
  • sigma_shiftk SHIFT for K points
  • usepawu USE PAW+U (spherical part)


  • ecutwfn Energy CUT-off for WaveFunctioNs
  • einterp Electron bands INTERPolation
  • eph_phrange EPH PHonon mode RANGE.
  • eph_phrange_w EPH PHonon mode RANGE (Frequency)
  • eph_tols_idelta EPH TOLeranceS on Integral of DELTA.
  • fftgw FFT for GW calculation
  • freqim_alpha FREQuencies along the IMaginary axis ALPHA parameter
  • gw1rdm GW 1-Reduced Density Matrix
  • gw_invalid_freq GW treatment of INVALID FREQuency for Hybertsen-Louie PPM
  • gw_nqlwl GW, Number of Q-points for the Long Wave-Length Limit
  • gw_qlwl GW, Q-points for the Long Wave-Length limit
  • gw_sigxcore GW, SIGma (self-energy) for the CORE contribution
  • gwgamma GW GAMMA
  • gwgmcorr GW Galitskii-Migdal CORRelation energy
  • gwmem GW MEMory
  • irdchkprdm Integer that governs ReaDing of CHecK-Point files for the GW 1-RDM
  • kssform Kohn Sham Structure file FORMat
  • npwkss Number of PlaneWaves in the KSS file
  • pawoptosc PAW - OPTion for the computation of the OSCillator matrix elements
  • prtchkprdm Integer that governs PrinTing of CHecK-Point files for the GW 1-RDM
  • prteliash PRINT ELIASHberg function.
  • sigma_bsum_range SIGMA: Band SUM RANGE
  • sigma_erange SIGMA Energy-range.
  • symsigma SYMmetrization of SIGMA matrix elements
  • transport_ngkpt TRANSPORT: Number of Grid points for K PoinTs integration in transport computations
  • x1rdm EXchange-only 1-Reduced Density Matrix
  • zcut Z-CUT


  • %npwsigx Number of PlaneWaves for SIGma eXchange
  • %npwwfn Number of PlaneWaves for WaveFunctioNs

Selected Input Files



  • The first tutorial on GW (GW1) deals with the computation of the quasi-particle band gap of Silicon (semiconductor), in the GW approximation (much better than the Kohn-Sham LDA band structure), with a plasmon-pole model.
  • The second tutorial on GW (GW2) deals with the computation of the quasi-particle band structure of Aluminum, in the GW approximation (so, much better than the Kohn-Sham LDA band structure) without using the plasmon-pole model.
  • The tutorial on Parallelism of Many-Body Perturbation calculations (GW) allows to speed up the calculation of accurate electronic structures (quasi-particle band structure, including many-body effects).